#ifndef BURGLED_COLLISION_SYSTEM_HPP_INCLUDED
#define BURGLED_COLLISION_SYSTEM_HPP_INCLUDED
#include <GQE/Entity/interfaces/ICollisionSystem.hpp>
#include <GQE/Entity/classes/Prototype.hpp>
class GameState;
class CollisionSystem : public GQE::ICollisionSystem
{
  public:

    CollisionSystem(GQE::IApp& theApp,GameState *theGameState);

    virtual ~CollisionSystem();

    /**
     * RegisterPrototype is responsible for adding the properties to a prototype.
     * @param[in] thePrototype is the prototype to use.
     */
    virtual void AddProperties(GQE::IEntity* theEntity);
  protected:

    virtual void EntityCollision(GQE::IEntity* theMovingEntity,GQE::IEntity* theOtherEntity, GQE::typeCollisionData theCollisionData);
  private:
    std::vector<GQE::IEntity*> mMovables;
    GameState* mGameState;
    std::string mWarpMap;
    bool mWarp;
    sf::Vector2f mWarpPosition;

};
#endif
